object ForBindingDemo extends App {
  // 定义学生姓名和对应的成绩
  val names: List[String] = List("张三", "李四", "王五", "赵六", "孙七")
  val scores: List[Int] = List(85, 92, 78, 65, 90)

  // 1. 使用值绑定：计算成绩等级
  println("学生成绩等级：")
  for (score <- scores) {
    // 值绑定：在循环中定义临时变量
    val level = if (score >= 90) "A"
    else if (score >= 80) "B"
    else if (score >= 70) "C"
    else if (score >= 60) "D"
    else "F"
    println(s"成绩：$score -> 等级：$level")
  }

  // 2. 使用多生成器：同时遍历姓名和成绩
  println("\n学生成绩详情：")
  for {
    name <- names
    score <- scores
    if names.indexOf(name) == scores.indexOf(score) // 确保姓名和成绩对应
  } {
    val level = if (score >= 90) "优秀" else "良好"
    println(s"$name: $score 分（$level）")
  }

  // 3. 更简洁的方式：使用zip组合集合
  println("\n使用zip组合：")
  for ((name, score) <- names.zip(scores)) {
    println(s"$name 的成绩是 $score 分")
  }
}